package com.hjk.common.utils.concurrency;

import com.hjk.common.constants.GlobalConstant;

import static com.hjk.common.constants.GlobalConstant.str.M;

/**
 * 系统运行工具类
 *
 * @author huangjunkai
 * @version 1.0
 * @date 2020/8/12 21:31
 */
public class RuntimeUtils {
    private static Runtime runtime = Runtime.getRuntime();

    public static void main(String[] args) {
        Runtime rt = Runtime.getRuntime();
        System.out.println("处理器数量" + getCoreProcessor() + "个");
        //jvm的空闲内存数
        System.out.println("空闲内存数" + getFreeMemory());
        System.out.println("总内存数" + getTotalMemory());
        System.out.println("可用最大内存" + getMaxMemory());

    }

    /**
     * 获取cpu核心数量
     *
     * @return cpu核心数量
     */
    public static int getCoreProcessor() {
        return runtime.availableProcessors();
    }

    /**
     * 获取可用内存数,空闲内存数
     *
     * @return 获取可用内存数
     */
    public static long getFreeMemory() {
        return runtime.freeMemory() / 1024L / 1024L;
    }

    /**
     * 获取总内存数
     *
     * @return 获取总内存数
     */
    public static long getTotalMemory() {
        return runtime.totalMemory() / 1024L / 1024L;
    }

    /**
     * 获取可用最大内存
     *
     * @return 可用最大内存
     */
    public static long getMaxMemory() {
        return runtime.maxMemory() / 1024L / 1024L ;
    }


}
